package com.demo.supplier.service;

import com.demo.supplier.entity.FileInfo;
import com.demo.supplier.vo.FileInfoVo;
import com.demo.supplier.vo.FileUploadVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件服务接口
 * 
 * @author demo
 */
public interface FileService {

    /**
     * 上传文件（原有方法，保持兼容）
     */
    String uploadFile(MultipartFile file);

    /**
     * 上传文件并保存到数据库
     */
    FileUploadVo uploadFileWithDb(MultipartFile file);

    /**
     * 批量上传文件
     */
    List<FileUploadVo> uploadFiles(List<MultipartFile> files);

    /**
     * 删除文件（原有方法，保持兼容）
     */
    void deleteFile(String fileName);

    /**
     * 根据文件ID删除文件
     */
    void deleteFileById(Long fileId);

    /**
     * 获取文件访问URL（原有方法，保持兼容）
     */
    String getFileUrl(String fileName);

    /**
     * 根据文件ID获取访问URL
     */
    String getFileUrlById(Long fileId);

    /**
     * 获取文件信息
     */
    FileInfoVo getFileInfo(Long fileId);

    /**
     * 根据文件ID批量获取文件信息
     */
    List<FileInfo> getFilesByIds(List<Long> fileIds);

    /**
     * 检查文件是否被业务使用
     */
    boolean isFileInUse(Long fileId);
}